package com.shell.arouter.ui.activity

import com.durian.base.frame.activity.ActivityFrame
import com.durian.base.frame.titlebar.ISuperTitleBar
import com.shell.arouter.ui.title.TitleBar
import kotlinx.coroutines.CoroutineScope
import kotlinx.coroutines.MainScope
import kotlinx.coroutines.cancel

/**
 * 说明：ActivityXFrame
 * <p/>
 * 作者：fanly
 * <p/>
 * 类型：Class
 * <p/>
 * 时间：2019-12-19 16:22
 * <p/>
 * 版本：version 1.0
 */
abstract class ActivityCommon : ActivityFrame(), CoroutineScope by MainScope() {

    //    public DefaultTitleBar getDefaultTitleBar() {
//        if (mSuperTitleBar != null && mSuperTitleBar instanceof DefaultTitleBar) {
//            return (DefaultTitleBar) mSuperTitleBar;
//        } else {
//            return null;
//        }
//    }

//    public void setDefaultImmersionBar() {
//        if (mSuperTitleBar == null) {
//            mImmersionBar = ImmersionBar.with(this);
//            mImmersionBar.statusBarDarkFont(isStatusBarDarkFont()).init();
//            mImmersionBar.navigationBarColor(R.color.base_white).init();
//        }
//    }

//    public void onCustomTitleBar(View titlebar) {
//    }

//    public int bindTitleBar() {
//        return -1;
//    }

    /**
     * 建议使用bindSuperTitleBar()
     */
//    public void switchTitleBar(boolean show) {
//        if (getDefaultTitleBar() != null) {
//            getDefaultTitleBar().switchTitleBar(show);
//        }
//    }


//
//    /**
//     * 设置标题名称 建议使用bindSuperTitleBar()
//     *
//     * @return
//     */
//    public void setTitleBarText(String titleText) {
//        if (getDefaultTitleBar() != null) {
//            getDefaultTitleBar().setTitleBarText(titleText);
//        }
//    }

//    /**
//     * 设置二级标题名称 建议使用bindSuperTitleBar()
//     *
//     * @return
//     */
//
//    public void setSecTitleBarText(String titleText) {
//        if (getDefaultTitleBar() != null) {
//            getDefaultTitleBar().setSecTitleBarText(titleText);
//        }
//    }

//    /**
//     * 隐藏二级标题 建议使用bindSuperTitleBar()
//     */
//
//    public void secTitleBarGone() {
//        setTitleBarText(null);
//    }

//    /**
//     * 设置标题名称 建议使用bindSuperTitleBar()
//     *
//     * @return
//     */
//
    @Deprecated("")
    open fun bindTitleBarText(): String? {
        return null;
    }

//    /**
//     * 设置标题名称 建议使用bindSuperTitleBar()
//     *
//     * @return
//     */
//


//    /**
//     * 建议使用bindSuperTitleBar()
//     *
//     * @return
//     */
//
//    public TextView getRightView() {
//        if (getDefaultTitleBar() != null) {
//            return getDefaultTitleBar().getTvRightTitle();
//        }
//        return null;
//    }

//    /**
//     * 设置右边文字按钮内容 建议使用bindSuperTitleBar()
//     *
//     * @param text
//     */
//
//    public void setRightText(String text) {
//        if (getDefaultTitleBar() != null) {
//            getDefaultTitleBar().setRightText(text);
//        }
//    }

//    /**
//     * 设置右边文字按钮样式 建议使用bindSuperTitleBar()
//     *
//     * @param color
//     * @param size
//     */
//
//    public void setRightTextFont(int color, int size) {
//        if (getDefaultTitleBar() != null) {
//            getDefaultTitleBar().getTvRightTitle().setTextColor(color);
//            getDefaultTitleBar().getTvRightTitle().setTextSize(size);
//        }
//    }

//    /**
//     * 右边文字按钮显隐 建议使用bindSuperTitleBar()
//     *
//     * @param isShow
//     */
//
//    public void setRightTextVisible(boolean isShow) {
//        if (getDefaultTitleBar() != null) {
//            ViewTools.setVisibleOrGone(getDefaultTitleBar().getTvRightTitle(), isShow);
//        }
//    }

//    /**
//     * 默认状态栏颜色是黑色
//     *
//     * @return
//     */
//
//    public boolean isStatusBarDarkFont() {
//        return true;
//    }

//    /**
//     * 设置状态栏颜色状态，建议使用bindSuperTitleBar()
//     *
//     * @param isDarkFont
//     */
//
//    public void statusBarDarkFont(boolean isDarkFont) {
//        if (getImmersinBar() != null) {
//            getImmersinBar().statusBarDarkFont(isDarkFont, 0.2f).init();
//        }
//    }

//    /**
//     * 设置导航栏颜色，建议使用bindSuperTitleBar()
//     *
//     * @param navigationBarColor
//     */
//


    override fun onDestroy() {
        super.onDestroy()
        cancel()
    }

    override fun isOpenARouterInject(): Boolean {
        return false
    }

    fun getTitleBar(): TitleBar? {
        if (mSuperTitleBar is TitleBar){
            return mSuperTitleBar as TitleBar
        }
        return null
    }

    override fun bindSuperTitleBar(): ISuperTitleBar {
        return TitleBar(
                titleBarText = bindTitleBarText(),
                titleBarTextRes = bindTitleBarTextRes(),
                isShowTitleBar = isShowTitleBar(),
                isShowTitleBarBack = isShowTitleBarBack()
        )
    }

    @Deprecated("")
    open fun bindTitleBarTextRes(): Int {
        return 0
    }

    @Deprecated("")
    open fun isShowTitleBarBack(): Boolean {
        return false
    }

    @Deprecated("")
    open fun isShowTitleBar(): Boolean {
        return false
    }

}